#ifndef MINI_ENGINE_LOGICALDEVICE
#define MINI_ENGINE_LOGICALDEVICE
#include <iostream>
using namespace std;
#include <vector>
#include <set>
#include "PhysicalDevice.h"

const std::vector<const char *> deviceExtensions = {
    VK_KHR_SWAPCHAIN_EXTENSION_NAME};

namespace mini_engine
{
    class LogicalDevice
    {
    private:
        LogicalDevice();
        static LogicalDevice *m_logicalDevice;
        class LogicalDeviceDestruction
        {
        public:
            ~LogicalDeviceDestruction();
        };

    public:
        static VkDevice logicalDevice; // 逻辑设备
        static VkQueue graphicsQueue;
        static VkQueue presentQueue;
        static LogicalDevice *getLogicalDevice();
        void createLogicalDevice();
        ~LogicalDevice();
    };

}

#endif